[XEND] Fix check for whether domain is running.
authorAlastair Tse <atse@xensource.com>
Fri, 6 Oct 2006 15:40:39 +0000 (16:40 +0100)
committerAlastair Tse <atse@xensource.com>
Fri, 6 Oct 2006 15:40:39 +0000 (16:40 +0100)
Signed-off-by: Alastair Tse <atse@xensource.com>
tools/python/xen/xend/XendAPI.py
tools/python/xen/xend/XendDomainInfo.py

index e91ee95e1147433b84186261b871bdd653edb9db..a33345e2950381e6086b4ba44465707463d79a71 100644 (file)
@@ -953,7 +953,7 @@ class XendAPI:
             return xen_api_error(XEND_ERROR_VIF_INVALID)
         cfg = vm.get_dev_xenapi_config('vbd', vbd_ref)
         if not cfg:
-            return xen_api_error(XEND_ERROR_UNKNOWN)
+            return xen_api_error(XEND_ERROR_VIF_INVALID)
         return xen_api_success(cfg)
     
     # class methods
@@ -969,7 +969,6 @@ class XendAPI:
         else:
             return xen_api_error(XEND_ERROR_DOMAIN_INVALID)
 
-
     # attributes (rw)
     def vbd_get_vm(self, session, vbd_ref):
         xendom = XendDomain.instance()
@@ -1014,7 +1013,7 @@ class XendAPI:
             return xen_api_error(XEND_ERROR_VIF_INVALID)
         cfg = vm.get_dev_xenapi_config('vif', vif_ref)
         if not cfg:
-            return xen_api_error(XEND_ERROR_UNKNOWN)
+            return xen_api_error(XEND_ERROR_VIF_INVALID)
         valid_vif_keys = self.VIF_attr_ro + self.VIF_attr_rw + \
                          self.Base_attr_ro + self.Base_attr_rw
         for k in cfg.keys():
index 86c550247ff358a805090d8dd6867be7780d0749..a4afe1d73e5875cbfab040af697090e367c245ec 100644 (file)
@@ -1713,7 +1713,7 @@ class XendDomainInfo:
     def get_dev_config_by_uuid(self, dev_class, dev_uuid):
         """ Get's a device configuration either from XendConfig or
         from the DevController."""
-        if self.get_power_state() not in ('Halted',):
+        if self.get_power_state() in (XEN_API_VM_POWER_STATE_HALTED,):
             dev = self.info['device'].get(dev_uuid)
             if dev:
                 return dev[1].copy()
@@ -1722,9 +1722,11 @@ class XendDomainInfo:
             controller = self.getDeviceController(dev_class)
             if not controller:
                 return None
+            
             all_configs = controller.getAllDeviceConfigurations()
             if not all_configs:
                 return None
+
             for _devid, _devcfg in all_configs.items():
                 if _devcfg.get('uuid') == dev_uuid:
                     devcfg = _devcfg.copy()